]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/texture-cache: Fail loading invalid StImageContent
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 12 Mar 2021 22:25:12 +0000 (23:25 +0100)
committerMarge Bot <marge-bot@gnome.org>
Sun, 14 Mar 2021 20:36:41 +0000 (20:36 +0000)
Creating a content object from a cairo surface may fail, in which case
we return an empty content with a 0x0 preferred size.

However when we treat such a content object as GIcon, we happily load
it anyway. Don't do that, so consumers like StIcon can fall back properly
to an alternative.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1761>

src/st/st-texture-cache.c

index 178acbb5dc08eb94f7edc4f65ad8299ac568b419..f235ace6ec2239ab1b3275b66a4d1fd864b72cf9 100644 (file)
@@ -982,6 +982,15 @@ st_texture_cache_load_gicon (StTextureCache    *cache,
 
   if (ST_IS_IMAGE_CONTENT (icon))
     {
+      int width, height;
+
+      g_object_get (G_OBJECT (icon),
+                    "preferred-width", &width,
+                    "preferred-height", &height,
+                    NULL);
+      if (width == 0 && height == 0)
+        return NULL;
+
       return g_object_new (CLUTTER_TYPE_ACTOR,
                            "content-gravity", CLUTTER_CONTENT_GRAVITY_RESIZE_ASPECT,
                            "width", actor_size,